/*
* 164. 最大间距
* 给定一个无序的数组，找出数组在排序之后，相邻元素之间最大的差值。
* 如果数组元素个数小于 2，则返回 0。
* */

// 方法一
/*const maximumGap = (arr) => {
  const len = arr.length
  let max = 0

  if (len < 2) {
    return 0
  }

  arr.sort((a, b) => {
    return a - b
  })

  for (let i = 0; i < len - 1; i++) {
    let gap = arr[i + 1] - arr[i]
    if ( gap > max) {
      max = gap
    }
  }

  return max
}*/

// 方法二
const maximumGap = (arr) => {
  const len = arr.length
  let max = 0

  if (len < 2) {
    return 0
  }

  for (let i = 0; i < len; i++) {
    for (let j = 0; j < len - 1 - i; j++) {
      if (arr[j] > arr[j + 1]) {
        let tmp = arr[j]
        arr[j] = arr[j + 1]
        arr[j + 1] = tmp
      }
    }

    if (i > 0) {
      let gap = arr[len - i] - arr[len - 1 - i]

      if (gap > max) {
        max = gap
      }
    }
  }

  return max
}

export default maximumGap
